package main

import "fmt"

/*
Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。

最开始，他在周一的时候存入 1块钱。从周二到周日，他每天都比前一天多存入 1块钱。在接下来每一个周一，他都会比 前一个周一 多存入 1块钱。

给你n，请你返回在第 n天结束的时候他在力扣银行总共存了多少块钱。
*/
func totalMoney(n int) int {
	week := n / 7
	lastDay := n % 7
	firstCoin := 1
	total := 0
	for i := 0; i < week; i++ {
		total += add(firstCoin, 1, 7)
		firstCoin++
	}
	total += add(firstCoin, 1, lastDay)
	return total
}

// 等差公式前n项之和
// a1 首项
// d 等差
// n n项
func add(a1 int, d int, n int) int {
	return a1*n + n*(n-1)*d/2
}

func main() {
	n := 31
	fmt.Println(fmt.Sprintf("Hercy 存钱天数%d天，共存储%d元", n, totalMoney(n)))
}
